/*
 * testLogWriter.h
 * Este es un writer especial hecho para testear aplicaciones que generan logs como elemento de comunicacion con el exterior. Suscribimos este test
 * al appender de las pruebas y despues podemos obtener la lista de mensajes recibidos.
 *  Created on: Nov 14, 2011
 *      Author: fferri
 */

#ifndef TESTLOGWRITER_H_
#define TESTLOGWRITER_H_

#include "Log/LogSystem.h"

class CTestLogWriter: public glog::IListener
{
	bool m_writeToStdOut;
	std::list<std::string> m_stringsReported;
public:
	void writeToLog(const std::string& appender, glog::LogLevel level, time_t time,const std::string& message )
	{
		std::stringstream ss;
		ss << appender << glog::levelToString(level) << ": " << message << std::endl;
		if(m_writeToStdOut)
			std::cout << appender << glog::levelToString(level) << ": " << message << std::endl;
		m_stringsReported.push_back(ss.str());
	}
	std::list<std::string>& getReportedStringList()
	{
		return m_stringsReported;
	}
	CTestLogWriter(bool writeToStdOut)
		:m_writeToStdOut(writeToStdOut)
	{}
};


#endif /* TESTLOGWRITER_H_ */
